/* eslint-disable */
const path = require('path')
const IS_PROD = ['production', 'prod'].includes(process.env.NODE_ENV);
const resolve = dir => path.join(__dirname, dir)
// 引入等比适配插件
const px2rem = require('postcss-px2rem')

const webpack = require('webpack')
// 配置基本大小
const postcss = px2rem({
  // 基准大小 baseSize，需要和rem.js中相同
  remUnit: 16
})


module.exports = {
  // 部署应用时的根路径(默认'/'),也可用相对路径(存在使用限制)
  publicPath: process.env.NODE_ENV === 'production' ? './' : '/',
  // 运行时生成的生产环境构建文件的目录(默认''dist''，构建之前会被清除)
  outputDir: 'dist',
  //放置生成的静态资源(s、css、img、fonts)的(相对于 outputDir 的)目录(默认'')
  assetsDir: '',
  // 生产环境的 source map
  productionSourceMap: false,
  //指定生成的 index.html 的输出路径(相对于 outputDir)也可以是一个绝对路径。
  indexPath: 'index.html',
  // 是否在开发环境下通过 eslint-loader 在每次保存时 lint 代码 (在生产构建时禁用 eslint-loader)
  lintOnSave: process.env.NODE_ENV !== 'production', //development
  transpileDependencies: ['vue-aplayer', 'vue-i18n'], //开启语法转换和根据使用情况检测 polyfill
  // transpileDependencies: [/[/\\]node_modules[/\\](.+?)?vue-aplayer(.*)/],
  // /[/\\]node_modules[/\\](.+?)?vue-ele-upload-image(.*)/,
  chainWebpack: config => {
    config.resolve.alias
      .set('vue$', 'vue/dist/vue.esm.js')
      .set('@', resolve('src'))
      .set('assets', resolve('src/assets'))
      .set('components', resolve('src/components'))
      .set('api', resolve('src/api'))
      .set('utils', resolve('src/utils'))
      .set('store', resolve('src/store'))
      .set('router', resolve('src/router'))

    config.resolve.extensions
      .add('.js')
      .add('.vue')
    // .add('.stylus')

    config.plugin('provide').use(webpack.ProvidePlugin, [{
      $: 'jquery',
      jquery: 'jquery',
      jQuery: 'jquery',
      'window.jQuery': 'jquery'
    }])

    // svg
    config.module
      .rule('svg')
      .exclude.add(resolve('src/assets/icons/svg'))
      .end();
    config.module
      .rule('icons')
      .test(/\.svg$/)
      .include.add(resolve('src/assets/icons/svg'))
      .end()
      .use('svg-sprite-loader')
      .loader('svg-sprite-loader')
      .options({
        symbolId: 'icon-[name]',
      })
      .end()
    // 需要修改svg颜色时加上
    // .before('svg-sprite-loader')
    // .use('svgo-loader')
    // .loader('svgo-loader')
    // .options({
    //     plugins: [
    //         {removeAttrs: {attrs: 'path:fill'}}
    //     ]
    // })
    // .end();
  },

  // 使用等比适配插件
  // lintOnSave: true,
  configureWebpack: { externals: 'hls.js' }, //entry: ["classlist-polyfill", "babel-polyfill", "./src/main.js"]
  css: {
    requireModuleExtension: true,
    loaderOptions: {
      postcss: {
        plugins: [
          postcss
        ]
      }
    }
  },
  devServer: {
    host:'0.0.0.0',
    port: 8080,
    open: true,
    hotOnly: true,
    proxy: { //配置多个跨域
      '/api': {
        target: "http://test-gw.kuke.com",
        changeOrigin: true, //是否跨域
        ws: true, //websocket支持
        secure: false,//如果是https接口，需要配置这个参数
        pathRewrite: {
          '^/api': ''
        }
      },
      // "/api2": {
      //     target: "http://172.12.12.12:2018",
      //     changeOrigin: true,
      //     //ws: true,//websocket支持
      //     secure: false,
      //     pathRewrite: {
      //         "^/api2": "/"
      //     }
      // },
    }
  }
}
